
using System;
using System.Collections;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using ZedGraph;
namespace NCS_CS
{
	public class ShiXu
	{
		public int id;
		byte[] b1;
		byte[] b2;
		int[] time;
		public int at;
		public void setdata(byte vb1, byte vb2, TimeSpan t)
		{
			Array.Resize(ref b1, at + 1);
			Array.Resize(ref b2, at + 1);
			Array.Resize(ref time, at + 1);
			b1[at] = vb1;
			b2[at] = vb2;
			time[at] = (int)t.TotalMilliseconds;
			at = at + 1;
		}

		public ShiXu()
		{
			at = 0;
		}
		public bool getBit(ref int i, byte b1, byte b2)
		{
            if (i >= 0 & i <= 7)
            {
                return ModMain.BitIsSetChar( b1, (byte)i);
            }
            else if (i >= 8 & i <= 15)
            {
                return ModMain.BitIsSetChar( b2, (byte)(i - 8));
            }
            else
            {
                return false;
            }

		}
		public void tocurve(ref MyZed MyZed1, ref MyZed myzed2)
		{
			tocurve(ref MyZed1);
			tocurve(ref myzed2);
		}
		public void tocurve(ref MyZed MyZed1)
		{
            //int wzb = 0;
            //wzb = 4;
            //int i = 0;
            //GraphPane myPane = MyZed1.GraphPane;
            //myPane.CurveList.Clear();
            //myPane.GraphObjList.Clear();
            //Collection bit = null;
            //bit = new Collection();
            //Collection xs = null;
            //xs = new Collection();
            //int[] cts = null;
            //cts = new int[ModMain.nvlv];
            //int j = 0;
            //int tmp = 0;
            //int endtime = 0;
            //if (at < 2)
            //    return;
            //for (i = 0; i <= ModMain.nvlv - 1; i++) {
            //    int[] x = null;
            //    x = new int[at * 2];
            //    int[] y = null;
            //    y = new int[at * 2];
            //    int ct = 0;
            //    ct = 0;
            //    j = 0;
            //    //the first
            //    if (getBit(ref ModMain.vlV[i], b1[j], b2[j])) {
            //        x[ct] = time[j];
            //        y[ct] = i * wzb + 1;
            //        ct = ct + 1;
            //    } else {
            //        x[ct] = time[j];
            //        y[ct] = i * wzb + 0;
            //        ct = ct + 1;
            //    }
            //    for (j = 1; j <= at - 2; j++) {
            //        if (getBit(ref ModMain.vlV[i], b1[j], b2[j])) {
            //            tmp = i * wzb + 1;
            //            if (tmp != y[ct - 1]) {
            //                x[ct] = time[j];
            //                y[ct] = y[ct - 1];
            //                ct = ct + 1;

            //                x[ct] = time[j];
            //                y[ct] = tmp;
            //                ct = ct + 1;

            //            }

            //        } else {
            //            tmp = i * wzb + 0;
            //            if (tmp != y[ct - 1]) {
            //                x[ct] = time[j];
            //                y[ct] = y[ct - 1];
            //                ct = ct + 1;

            //                x[ct] = time[j];
            //                y[ct] = tmp;
            //                ct = ct + 1;
            //            }
            //        }
            //    }
            //    j = at - 1;
            //    //the last
            //    if (getBit(ref ModMain.vlV[i], b1[j], b2[j])) {
            //        tmp = i * wzb + 1;
            //        if (tmp != y[ct - 1]) {
            //            x[ct] = time[j];
            //            y[ct] = y[ct - 1];
            //            ct = ct + 1;

            //            x[ct] = time[j];
            //            y[ct] = tmp;
            //            ct = ct + 1;
            //        } else {
            //            x[ct] = time[j];
            //            y[ct] = tmp;
            //            ct = ct + 1;
            //        }
            //    } else {
            //        tmp = i * wzb + 0;
            //        if (tmp != y[ct - 1]) {
            //            x[ct] = time[j];
            //            y[ct] = y[ct - 1];
            //            ct = ct + 1;

            //            x[ct] = time[j];
            //            y[ct] = tmp;
            //            ct = ct + 1;
            //        } else {
            //            x[ct] = time[j];
            //            y[ct] = tmp;
            //            ct = ct + 1;
            //        }
            //    }
            //    //'
            //    endtime = time[j];
            //    //x(ct) = endtime + 5000
            //    //y(ct) = y(ct - 1)
            //    //ct = ct + 1
            //    ///''''''
            //    //tmp = y(1)
            //    //If tmp <> y(ct - 1) Then
            //    //    x(ct) = endtime + 6000
            //    //    y(ct) = y(ct - 1)
            //    //    ct = ct + 1

            //    //    x(ct) = endtime + 6000
            //    //    y(ct) = tmp
            //    //    ct = ct + 1
            //    //Else
            //    //    x(ct) = endtime + 6000
            //    //    y(ct) = tmp
            //    //    ct = ct + 1
            //    //End If

            //    xs.Add(x, Convert.ToString(i),null,null);
            //    bit.Add(y, Convert.ToString(i),null,null);
            //    cts[i] = ct;
            //}
            //LineObj l = new LineObj(Color.BlueViolet, endtime, 0, endtime, wzb * ModMain.nvlv);
            ////l.Line.Style = System.Drawing2D.DashStyle.Dash;
            //myPane.GraphObjList.Add(l);
            //for (i = 0; i <= ModMain.nvlv - 1; i++)
            //{
            //    LineItem myCurve = myPane.AddCurve(Convert.ToString(i), null, Color.Blue, SymbolType.Circle);
            //    myCurve.Symbol.Fill = new Fill(Color.Blue);
            //    myCurve.Symbol.Size = 5;
            //    myCurve.Line.Width = 3;
            //    //MyZed1.setArrV(ref xs[Convert.ToString(i)], ref bit[Convert.ToString(i)], cts[i], i);
            //    l = new LineObj(Color.BlueViolet, time[0], wzb * i, time[at - 1], wzb * i);
            //    //l.Line.Style = Drawing2D.DashStyle.Dash;
            //    myPane.GraphObjList.Add(l);
            //    TextObj t = new TextObj(ModMain.vlvName[i], endtime + 5000, wzb * i);
            //    //LineObj(Color.BlueViolet, time(0), 3 * i, time(at - 1), 3 * i]

            //    myPane.GraphObjList.Add(t);
            //}
            //myPane.YAxis.Scale.MajorStep = 4;
            //MyZed1.setxyDw("ms", "");
		}
	}
}
